(function(win,mui,$){
    module = {};
    // 底部对象
    var footer = $(".mui-footer"),
    // 整个面版
    content = $(".mui-content"),
    // 滚动内容体
    mainBody = $(".main-body"),
    // 切换输入对象
    inputButton = $("#input-button"),
    // 添加对象按钮
    addButton = $("#add-button"),
    // 中间输入对象
    inputRect = $("#input-rect"),
    // 滚动内容体
    scrollContent = $(".mui-scroll-wrapper"),
    // mui滚动内容体
    __muiScrollContent = mui('.mui-scroll-wrapper'),
    // 发送消息按钮
    sendMessButton = $("#send-mess");

    // 内容体滚动
    // __muiScrollContent.scroll({
    //     deceleration: 0.0005 //flick 减速系数，系数越大，滚动速度越慢，滚动距离越小，默认值0.0006
    // });

    // 获取设备高度
    // console.log(window.screen.height)

    /**
    * 主体操作
    */

    // 初始化主体高度
    module.init = function(){
        mainBody.innerHeight(module.getDocumentHeight() - 94)
        // content.innerHeight(module.getDocumentHeight())
    }
   

    // 按钮组操作
    addButton.click(function(){
        footer.toggleClass("toh")
        if(footer.hasClass("toh")){
            scrollContent.css("bottom",250)
            content.css("padding-bottom",250)
            mainBody.innerHeight(module.getDocumentHeight() - 294)
        }else{
            scrollContent.css("bottom",50)
            content.css("padding-bottom",50)
            mainBody.innerHeight(module.getDocumentHeight() - 94)
        }
        module.scrollBottom()
        // __muiScrollContent.scroll().scrollTo(0, -scrollContent.height(), 300);
    })

    // 输入切换
    inputButton.click(function(){
        inputRect.toggleClass("tob")
        if(inputRect.hasClass("tob")){
            inputButton.html("<i class='iconfont chart-ai-keyboard'></i>")
            // inputRect.find("input").val("按住 说话").attr("type", "button")
            inputRect.find("button").removeClass("mui-hidden")
        }else{
            inputButton.html("<i class='iconfont chart-yuyin'></i>")
            // inputRect.find("input").val("").attr("type", "text")
            inputRect.find("button").addClass("mui-hidden")
        }
        if(footer.hasClass("toh")){
            addButton.trigger("click")
        }
    })

    // 切换发送状态


    // input内容侦听
    var inputR = inputRect.find("input");
    inputR.on("focus", function(){
        if(footer.hasClass("toh")){
            addButton.trigger("click")
        }
    })
    inputR.on("input", function(){
        module.changeSend(inputR.val())
    })
    inputR.on("change", function(){
        module.changeSend(inputR.val())
    })

    /**
    * 发送语音 操作
    */ 
    var MIN_SOUND_TIME = 800;
    var recorder = null;
    var startTimestamp = null;
    var stopTimestamp = null;
    var stopTimer = null;
    var recordCancel = false;
    var audioBaseStr = "";

    module.audioInit = function(callback){
        document.querySelector('#input-rect-msg').addEventListener('hold', function(e){
            recordCancel = false;
            audioBaseStr = "";

             // 获取当前设备的录音对象
            recorder = plus.audio.getRecorder();
            startTimestamp = (new Date()).getTime();
            recorder.record({
                filename:"_doc/audio/",
                format:"amr" //iOS平台支持"wav"、"aac"、"amr"格式，默认为"wav"
            }, function (path) {
                if (recordCancel) return;
                console.log("path:"+path);
                audioUnitl.Audio2dataURL(path, function(data){
                    audioBaseStr = data;
                    callback(audioBaseStr, stopTimestamp - startTimestamp)
                });
            }, function ( e ) {
                mui.toast("录音出现异常: " + e.message );
            });
            e.preventDefault();
        })

        document.querySelector('#input-rect-msg').addEventListener('release', function(e){
            // 判断录音时间
            stopTimestamp = (new Date()).getTime();
            if (stopTimestamp - startTimestamp < MIN_SOUND_TIME) {
                // audioTips.innerHTML = "录音时间太短";
                // soundAlert.classList.add('rprogress-sigh');
                recordCancel = true;
                // stopTimer=setTimeout(function(){
                //     setSoundAlertVisable(false);
                // },800);
            }else{
                // 发送  str  time
                // callback(audioBaseStr, stopTimestamp - startTimestamp)
                // setSoundAlertVisable(false);
            }
            recorder.stop();
            e.preventDefault();
        })
    }

    

    // 点击内容体收缩
    content.click(function(){
        if(footer.hasClass("toh")){
            footer.removeClass("toh")
            scrollContent.css("bottom",50)
            content.css("padding-bottom",50)
            mainBody.innerHeight(module.getDocumentHeight() - 94)
            module.scrollBottom()
            // __muiScrollContent.scroll().scrollTo(0, -scrollContent.height(),300);
        }
        return false;
    })

    // 滚动到底部
    module.scrollBottom = function(){
        mainBody.scrollTop(99999);
        // __muiScrollContent.scroll().scrollTo(0, -scrollContent.height(),0);
    }


    // 方法
    module.setRect = function(){

    }

    module.getDocumentHeight = function(){
        return document.documentElement.clientHeight || document.body.clientHeight;
    }


    // 切换发送状态
    module.changeSend = function(val){
        if(inputRect.find("input").attr("type") == "text" && val != ""){
            sendMessButton.removeClass("mui-hidden")
            addButton.addClass("mui-hidden")
        }else if(inputRect.find("input").attr("type") == "text" && val == ""){
            sendMessButton.addClass("mui-hidden")
            addButton.removeClass("mui-hidden")
        }
    }

    /**
    * 工具功能
    */
    var picTool = $("#pic-tool"),
    cameraTool = $("#camera-tool");

    module.picToolInit = function(callback){
        // picTool.append("<input class = 'mui-hidden'");
        picTool.click(function(){
            imageUnitl.captureImage(function(img){
                // picTool.find("input").val('url(' + img + ')')
                callback(img)
            })
        })
    }
    module.cameraToolInit = function(callback){
        cameraTool.click(function(){
            imageUnitl.captureCameraImage(function(img){
                callback(img)
            })
        })
    }

    window.chart = module;
})(window,mui,jQuery)